package com.hxm.demo.leetcode;

import java.util.Scanner;
import java.util.TreeMap;

/**
 * @author huangxiaoming
 * @date 2022/5/29
 **/
public class Test8 {

    /**
     * 描述
     * 数据表记录包含表索引index和数值value（int范围的正整数），请对表索引相同的记录进行合并，即将相同索引的数值进行求和运算，输出按照index值升序进行输出。
     * <p>
     * <p>
     * 提示:
     * 0 <= index <= 11111111
     * 1 <= value <= 100000
     * <p>
     * 输入描述：
     * 先输入键值对的个数n（1 <= n <= 500）
     * 接下来n行每行输入成对的index和value值，以空格隔开
     * <p>
     * 输出描述：
     * 输出合并后的键值对（多行）
     *
     * @param args
     */
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = Integer.valueOf(in.nextLine());
            TreeMap<Integer, Integer> treeMap = new TreeMap<>();
            for (int i = 0; i < n; i++) {
                String n2 = in.nextLine();
                String[] split = n2.split(" ");
                Integer key = Integer.parseInt(split[0]);
                Integer value = Integer.parseInt(split[1]);
                if (treeMap.containsKey(key)) {
                    treeMap.put(key, value + treeMap.get(key));
                } else {
                    treeMap.put(key, value);
                }
            }
            for (Integer key : treeMap.keySet()) {
                System.out.println(key + " " + treeMap.get(key));
            }
        }
    }
}
